package com.visizen.wisdomclass.server.client;

import com.visizen.wisdomclass.server.model.WcInfomFeedback;
import com.visizen.wisdomclass.server.model.WcInfomFeedbackExample;
import java.util.List;
import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.UpdateProvider;
import org.apache.ibatis.type.JdbcType;

public interface WcInfomFeedbackMapper {
    @SelectProvider(type=WcInfomFeedbackSqlProvider.class, method="countByExample")
    int countByExample(WcInfomFeedbackExample example);

    @DeleteProvider(type=WcInfomFeedbackSqlProvider.class, method="deleteByExample")
    int deleteByExample(WcInfomFeedbackExample example);

    @Insert({
        "insert into wc_infom_feedback (FEEDBACK_ID, INFORM_ID, ",
        "USER_ID, CONTANT, ",
        "FB_TIME)",
        "values (#{FEEDBACK_ID,jdbcType=BIGINT}, #{INFORM_ID,jdbcType=BIGINT}, ",
        "#{USER_ID,jdbcType=BIGINT}, #{CONTANT,jdbcType=VARCHAR}, ",
        "#{FB_TIME,jdbcType=TIMESTAMP})"
    })
    int insert(WcInfomFeedback record);

    @InsertProvider(type=WcInfomFeedbackSqlProvider.class, method="insertSelective")
    int insertSelective(WcInfomFeedback record);

    @SelectProvider(type=WcInfomFeedbackSqlProvider.class, method="selectByExample")
    @Results({
        @Result(column="FEEDBACK_ID", property="FEEDBACK_ID", jdbcType=JdbcType.BIGINT),
        @Result(column="INFORM_ID", property="INFORM_ID", jdbcType=JdbcType.BIGINT),
        @Result(column="USER_ID", property="USER_ID", jdbcType=JdbcType.BIGINT),
        @Result(column="CONTANT", property="CONTANT", jdbcType=JdbcType.VARCHAR),
        @Result(column="FB_TIME", property="FB_TIME", jdbcType=JdbcType.TIMESTAMP)
    })
    List<WcInfomFeedback> selectByExample(WcInfomFeedbackExample example);

    @UpdateProvider(type=WcInfomFeedbackSqlProvider.class, method="updateByExampleSelective")
    int updateByExampleSelective(@Param("record") WcInfomFeedback record, @Param("example") WcInfomFeedbackExample example);

    @UpdateProvider(type=WcInfomFeedbackSqlProvider.class, method="updateByExample")
    int updateByExample(@Param("record") WcInfomFeedback record, @Param("example") WcInfomFeedbackExample example);
}